@@ -1,7 +1,4 @@  | 
            ||
| 1 | 
                -To Do  | 
            |
| 2 | 
                -======  | 
            |
| 3 | 1 | 
                 | 
            
| 4 | 
                -- Repeated requests to the same domain, ends up causing a block. This app should be storing queries for 12-24 hours.  | 
            |
| 2 | 
                +======  | 
            |
| 5 | 3 | 
                 | 
            
| 6 | 
                -- add some error checking  | 
            |
| 7 | 4 | 
                 | 
            
                @@ -4,6 +4,9 @@ require 'haml'  | 
            ||
| 4 | 4 | 
                require 'json'  | 
            
| 5 | 5 | 
                require 'ostruct'  | 
            
| 6 | 6 | 
                 | 
            
| 7 | 
                +before do  | 
            |
| 8 | 
                + response['Access-Control-Allow-Origin'] = '*'  | 
            |
| 9 | 
                +end  | 
            |
| 7 | 10 | 
                 | 
            
| 8 | 11 | 
                helpers do  | 
            
| 9 | 12 | 
                 | 
            
                @@ -13,6 +16,22 @@ helpers do  | 
            ||
| 13 | 16 | 
                end  | 
            
| 14 | 17 | 
                end  | 
            
| 15 | 18 | 
                 | 
            
| 19 | 
                + def whois_lookup  | 
            |
| 20 | 
                + @lookup_info = Whois.query(params[:url])  | 
            |
| 21 | 
                + @admin_contacts = Hash[@lookup_info.admin_contacts[0].each_pair.to_a]  | 
            |
| 22 | 
                + @technical_contacts = Hash[@lookup_info.technical_contacts[0].each_pair.to_a]  | 
            |
| 23 | 
                +  | 
            |
| 24 | 
                +		return {
               | 
            |
| 25 | 
                + "domain" => @lookup_info.domain,  | 
            |
| 26 | 
                + "created_on" => @lookup_info.created_on,  | 
            |
| 27 | 
                + "expires_on" => @lookup_info.expires_on,  | 
            |
| 28 | 
                + "whois_server" => @lookup_info.referral_whois,  | 
            |
| 29 | 
                + "nameservers" => @lookup_info.nameservers,  | 
            |
| 30 | 
                + "admin_contacts" => @admin_contacts,  | 
            |
| 31 | 
                + "techical_contacts" => @technical_contacts  | 
            |
| 32 | 
                + }  | 
            |
| 33 | 
                + end  | 
            |
| 34 | 
                +  | 
            |
| 16 | 35 | 
                end  | 
            
| 17 | 36 | 
                 | 
            
| 18 | 37 | 
                 | 
            
                @@ -30,43 +49,18 @@ end  | 
            ||
| 30 | 49 | 
                get '/lookup' do  | 
            
| 31 | 50 | 
                begin  | 
            
| 32 | 51 | 
                cache_for_day  | 
            
| 33 | 
                -  | 
            |
| 34 | 
                - @lookup_info = Whois.query(params[:url])  | 
            |
| 35 | 
                - admin_contacts = Hash[@lookup_info.admin_contacts[0].each_pair.to_a]  | 
            |
| 36 | 
                - technical_contacts = Hash[@lookup_info.technical_contacts[0].each_pair.to_a]  | 
            |
| 37 | 
                -  | 
            |
| 38 | 
                -		@formatted_response = {
               | 
            |
| 39 | 
                - "domain" => @lookup_info.domain,  | 
            |
| 40 | 
                - "created_on" => @lookup_info.created_on,  | 
            |
| 41 | 
                - "expires_on" => @lookup_info.expires_on,  | 
            |
| 42 | 
                - "whois_server" => @lookup_info.referral_whois,  | 
            |
| 43 | 
                - "nameservers" => @lookup_info.nameservers,  | 
            |
| 44 | 
                - "admin_contacts" => admin_contacts,  | 
            |
| 45 | 
                - "techical_contacts" => technical_contacts  | 
            |
| 46 | 
                - }  | 
            |
| 52 | 
                + @formatted_response = whois_lookup  | 
            |
| 47 | 53 | 
                haml :lookup  | 
            
| 48 | 54 | 
                rescue  | 
            
| 49 | 55 | 
                haml :error  | 
            
| 50 | 56 | 
                end  | 
            
| 51 | 57 | 
                end  | 
            
| 52 | 58 | 
                 | 
            
| 59 | 
                +  | 
            |
| 53 | 60 | 
                get '/lookup.json' do  | 
            
| 54 | 61 | 
                begin  | 
            
| 55 | 62 | 
                cache_for_day  | 
            
| 56 | 
                -  | 
            |
| 57 | 
                - @lookup_info = Whois.query(params[:url])  | 
            |
| 58 | 
                - admin_contacts = Hash[@lookup_info.admin_contacts[0].each_pair.to_a]  | 
            |
| 59 | 
                - technical_contacts = Hash[@lookup_info.technical_contacts[0].each_pair.to_a]  | 
            |
| 60 | 
                -  | 
            |
| 61 | 
                - content_type :json  | 
            |
| 62 | 
                -		{ :domain => @lookup_info.domain,
               | 
            |
| 63 | 
                - :created_on => @lookup_info.created_on,  | 
            |
| 64 | 
                - :expires_on => @lookup_info.expires_on,  | 
            |
| 65 | 
                - :whois_server => @lookup_info.referral_whois,  | 
            |
| 66 | 
                - :nameservers => @lookup_info.nameservers,  | 
            |
| 67 | 
                - :admin_contacts => admin_contacts,  | 
            |
| 68 | 
                - :techical_contacts => technical_contacts  | 
            |
| 69 | 
                - }.to_json  | 
            |
| 63 | 
                + whois_lookup.to_json  | 
            |
| 70 | 64 | 
                rescue  | 
            
| 71 | 65 | 
                 		{"Error" => "Bad Request"}.to_json
               | 
            
| 72 | 66 | 
                end  |